import axios from 'axios'

// 获取学生测验列表
export function getStudentTests() {
  // 这里应调用实际 API，目前使用静态数据
  return new Promise((resolve) => {
    resolve({
      data: {
        code: 200,
        data: [
          {
            id: 1,
            title: '第一周 人工智能概述',
            className: '计算机科学与技术2班',
            publishTime: '2025-03-15 10:00',
            deadline: '2025/05/25 23:30',
            status: 'completed', // completed, incomplete
            totalScore: 20,
            studentScore: 18,
            submissionCount: 2,
            maxSubmissions: 3
          },
          {
            id: 2,
            title: '第二周 搜索求解',
            className: '计算机科学与技术2班',
            publishTime: '2025-03-18 14:30',
            deadline: '2025/05/26 00:00',
            status: 'incomplete',
            totalScore: 20,
            studentScore: 0,
            submissionCount: 0,
            maxSubmissions: 3
          }
        ]
      }
    })
  })
}

// 获取测验详情
export function getTestDetail(testId) {
  // 这里应调用实际 API，目前使用静态数据
  return new Promise((resolve) => {
    if (testId == 1) {
      resolve({
        data: {
          code: 200,
          data: {
            id: 1,
            title: '第一周 人工智能概述',
            className: '计算机科学与技术2班',
            publishTime: '2025-03-15 10:00',
            deadline: '2025/05/25 23:30',
            totalScore: 20,
            questions: [
              {
                id: 1,
                content: '如果一个题解或者有关不可计算，那么这个问题或任务的函数哪一句话是正确的（）',
                type: 'single',
                score: 2,
                options: [
                  { label: 'A', text: '该问题或任务所需计算的时间是非线性增加的' },
                  { label: 'B', text: '因为机器不可计算' },
                  { label: 'C', text: '该问题或任务所需计算的时间是线性增加的' },
                  { label: 'D', text: '法特将该问题或任务添加到一种性质来内存进行计算' }
                ]
              },
              {
                id: 2,
                content: '下面哪个方法是20世纪初根据图灵机计算机的简化判定（）',
                type: 'single',
                score: 2,
                options: [
                  { label: 'A', text: '阿尔法测试' },
                  { label: 'B', text: '蒙在纸里' },
                  { label: 'C', text: '弗洛伊德' },
                  { label: 'D', text: '摩尔定律' }
                ]
              }
            ]
          }
        }
      })
    } else {
      resolve({
        data: {
          code: 200,
          data: {
            id: 2,
            title: '第二周 搜索求解',
            className: '计算机科学与技术2班',
            publishTime: '2025-03-18 14:30',
            deadline: '2025/05/26 00:00',
            totalScore: 20,
            questions: [
              {
                id: 3,
                content: '深度优先搜索的特点是（）',
                type: 'single',
                score: 2,
                options: [
                  { label: 'A', text: '按照广度优先的顺序扩展节点' },
                  { label: 'B', text: '使用队列数据结构存储待扩展的节点' },
                  { label: 'C', text: '深入一个分支直到不能再深入为止' },
                  { label: 'D', text: '总是先扩展最优解' }
                ]
              },
              {
                id: 4,
                content: '以下哪些算法是启发式搜索算法（多选）',
                type: 'multiple',
                score: 2,
                options: [
                  { label: 'A', text: '广度优先搜索' },
                  { label: 'B', text: 'A*算法' },
                  { label: 'C', text: '贪心算法' },
                  { label: 'D', text: '迭代加深搜索' }
                ]
              }
            ]
          }
        }
      })
    }
  })
}

// 获取测验结果
export function getTestResults(testId) {
  // 这里应调用实际 API，目前使用静态数据
  return new Promise((resolve) => {
    resolve({
      data: {
        code: 200,
        data: {
          id: 1,
          title: '第一周 人工智能概述',
          className: '计算机科学与技术2班',
          publishTime: '2025-03-15 10:00',
          deadline: '2025/05/25 23:30',
          submitTime: '2025-05-24 21:45',
          score: 18,
          totalScore: 20,
          submissionCount: 2,
          maxSubmissions: 3,
          answers: [
            {
              questionId: 1,
              questionContent: '如果一个题解或者有关不可计算，那么这个问题或任务的函数哪一句话是正确的（）',
              type: 'single',
              score: 2,
              userAnswer: 'A',
              correctAnswer: 'A',
              isCorrect: true,
              options: [
                { label: 'A', text: '该问题或任务所需计算的时间是非线性增加的' },
                { label: 'B', text: '因为机器不可计算' },
                { label: 'C', text: '该问题或任务所需计算的时间是线性增加的' },
                { label: 'D', text: '法特将该问题或任务添加到一种性质来内存进行计算' }
              ]
            },
            {
              questionId: 2,
              questionContent: '下面哪个方法是20世纪初根据图灵机计算机的简化判定（）',
              type: 'single',
              score: 2,
              userAnswer: 'A',
              correctAnswer: 'C',
              isCorrect: false,
              options: [
                { label: 'A', text: '阿尔法测试' },
                { label: 'B', text: '蒙在纸里' },
                { label: 'C', text: '弗洛伊德' },
                { label: 'D', text: '摩尔定律' }
              ]
            }
          ]
        }
      }
    })
  })
}

// 提交测验答案
export function submitTestAnswers(testId, answers) {
  // 这里应调用实际 API，目前使用模拟数据
  console.log('提交测验答案', testId, answers)
  return new Promise((resolve) => {
    resolve({
      data: {
        code: 200,
        message: '提交成功',
        data: {
          score: 18,
          totalScore: 20
        }
      }
    })
  })
}

// 保存测验进度（不提交）
export function saveTestProgress(testId, answers) {
  // 这里应调用实际 API，目前使用模拟数据
  console.log('保存测验进度', testId, answers)
  return new Promise((resolve) => {
    resolve({
      data: {
        code: 200,
        message: '保存成功'
      }
    })
  })
}
